﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using BL;
using BE;
using System.Data;

namespace UI.Tesoreria
{
    public partial class FrmConceptoTesoreria : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                CargarGrilla();
            }
        }
                                    
        #region "Metodos"

        private void Grabar(ConceptoTesoreria conceptotes, String operacion)
        {
            conceptotes.Codigo = txtCodigo.Text.ToUpper();
            conceptotes.Nombre = txtNombre.Text.ToUpper();
            conceptotes.Monto = Convert.ToDecimal(txtMonto.Text);
            conceptotes.Activo = chkEstado.Checked;

            ConceptoTesoreria_BL concepto_bl = new ConceptoTesoreria_BL(conceptotes);
            if (operacion.Equals("NUEVO"))
            {
                conceptotes.IDCreadoPor = User.Identity.Name;
                concepto_bl.Insertar();
            }
            else
            {
                conceptotes.IDModificadoPor = User.Identity.Name;
                concepto_bl.Actualizar();
            }
            CargarGrilla();
        }

        private void CargarGrilla()
        {
            LabelErrorListado.Text = "";

            try
            {

                ConceptoTesoreria_BL tipo = new ConceptoTesoreria_BL();
                DataTable listado = tipo.Listado(txtCodigoFiltro.Text.Trim(), txtNombreFiltro.Text.Trim());
                GridConceptoTesoreria.DataSource = listado;
                GridConceptoTesoreria.DataBind();

                if (listado.Rows.Count < 1)
                {

                    throw new Exception("No se encontraron resultados");
                }


            }
            catch (Exception ex)
            {
                LabelErrorListado.Text = ex.Message.ToString();
            }


        }

        private void LimpiarDetalle()
        {
            labelID.Text = "";
            txtCodigo.Text = "";
            txtNombre.Text = "";
            txtMonto.Text = "";
        }

        private void RecuperarConceptoTesoreria(ConceptoTesoreria conceptote)
        {
            labelID.Text = conceptote.ID;
            txtCodigo.Text = conceptote.Codigo;
            txtNombre.Text = conceptote.Nombre;
            txtMonto.Text = conceptote.Monto.ToString("N2");
            chkEstado.Checked = conceptote.Activo;
        }
        
        #endregion

        #region "Botones"


        protected void btnNuevoTipoCp_Click(object sender, EventArgs e)
        {

        }

        protected void BtnCancelarCp_Click(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            CargarGrilla();
        }

        protected void Button1_Click1(object sender, EventArgs e)
        {
            CargarGrilla();
        }

        protected void btnNuevo_Click1(object sender, EventArgs e)
        {
            LabelErrorListado.Text = "";
            try
            {
                    LimpiarDetalle();
                    formularioNuevo.Show();
                    txtCodigo.Focus();
                    chkEstado.Checked = true;
                    CargarGrilla();                               
            }
            catch (Exception ex)
            {
                LabelErrorListado.Text = ex.Message.ToString();
            }
            
        }

        protected void btnNuevoConTes_Click(object sender, EventArgs e)
        {
            LabelError.Text = "";
            try
            {
                if (labelID.Text.Equals(""))
                {

                    if (txtCodigo.Text.Length == 0)
                    {
                        LabelError.Text = "Ingrese Código";
                        txtCodigo.Focus();
                        return;
                    }
                    else if (txtNombre.Text.Length ==0)
                    {
                        LabelError.Text = "Ingrese Nombre";
                        txtNombre.Focus();
                        return;   
                    }
                    else if (txtMonto.Text.Length == 0)
                    {
                        LabelError.Text = "Ingrese Monto";
                        txtMonto.Focus();
                        return;
                    }
                    else
                    {
                        ConceptoTesoreria conceptotes = new ConceptoTesoreria();
                        Grabar(conceptotes, "NUEVO");
                    }                    
                }
                else
                {
                    ConceptoTesoreria_BL conceptotes_bl = new ConceptoTesoreria_BL();
                    ConceptoTesoreria concepto = conceptotes_bl.obtenerConceptoPorId(labelID.Text.ToString());
                    Grabar(concepto, "Modificar");
                }
                formularioNuevo.Hide();
                CargarGrilla();
            }
            catch (Exception ex)
            {
                LabelError.Text = ex.Message.ToString();
            }
        }

        protected void BtnCancelarConTes_Click(object sender, EventArgs e)
        {
            formularioNuevo.Hide();
        }

        #endregion

        #region "Grilla"

        protected void GridConceptoTesoreria_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            LabelErrorListado.Text = "";
            try
            {
                if (e.CommandName.Equals("Eliminar"))
                {
                    LinkButton lb = (LinkButton)e.CommandSource;
                    GridViewRow gvr = (GridViewRow)lb.NamingContainer;
                    int id = (int)GridConceptoTesoreria.DataKeys[gvr.RowIndex].Value;

                    ConceptoTesoreria_BL concepto_bl = new ConceptoTesoreria_BL();
                    concepto_bl.Eliminar(id.ToString());
                    CargarGrilla();
                }


                if (e.CommandName.Equals("Modificar"))
                {
                    LinkButton lb = (LinkButton)e.CommandSource;
                    GridViewRow gvr = (GridViewRow)lb.NamingContainer;
                    int id = (int)GridConceptoTesoreria.DataKeys[gvr.RowIndex].Value;
                    LimpiarDetalle();
                    ConceptoTesoreria_BL concepto_bl = new ConceptoTesoreria_BL();
                    RecuperarConceptoTesoreria(concepto_bl.obtenerConceptoPorId(id.ToString()));
                    formularioNuevo.Show();
                }

            }
            catch (Exception ex)
            {
                LabelErrorListado.Text = ex.Message;
                throw;
            }
        }

        #endregion

        protected void GridConceptoTesoreria_RowDataBound(object sender, GridViewRowEventArgs e)
        {
          
        }

        protected void GridConceptoTesoreria_Load(object sender, EventArgs e)
        {
            
        }


    }
}